import os
from utils.utils1 import file_rename, process_to_csv, csv_out_range, loop_dataset_process_leading, loop_dataset_process_trailing
from check.check1 import transform_anti_clockwise
import argparse

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("-r", "--read_dir", type=str, help="待处理翼型所在文件夹路径", required=True)
    parser.add_argument("-s", "--save_dir", type=str, help="处理后的翼型保存路径", required=True)
    parser.add_argument("-s2", action='store_true', default=False, help="是否执行步骤2（记录翼型个数 && 将格式统一为csv文件格式）")
    parser.add_argument("-s3", action='store_true', default=False, help="是否执行步骤3（找出数据具有较小偏差的翼型并进行修正）")
    parser.add_argument("-s4", action='store_true', default=False, help="是否执行步骤4（将翼型数据转化为逆时针序列）")
    parser.add_argument("-s5", action='store_true', default=False, help="是否执行步骤5（对翼型前/后缘分别进行处理）")
    args = parser.parse_args()
    for file_name in os.listdir(args.read_dir):
        if ".DAT" in file_name:
            file_rename(os.path.join(args.read_dir, file_name))
    for file_name in os.listdir(args.read_dir):
        if ".DAT" in file_name:
            print(file_name + r"has '.DAT'")
    if args.s2:
        for file_name in os.listdir(args.read_dir):
            save_name = file_name[:-3]+"csv"
            process_to_csv(os.path.join(args.read_dir, file_name),
                           os.path.join(args.save_dir, save_name))
    if args.s3:
        print("以下翼型数据具有较小偏差且不在规范化范围内:")
        for file_name in os.listdir(args.save_dir):
            csv_out_range(os.path.join(args.save_dir, file_name))
    if args.s4:
        transform_anti_clockwise(args.save_dir, args.save_dir)
    if args.s5:
        loop_dataset_process_leading(args.save_dir, args.save_dir)
        loop_dataset_process_trailing(args.save_dir, args.save_dir)

    print("第一阶段处理后的翼型已保存在{}路径".format(args.save_dir))